package pms.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import pms.dao.EventDao;
import pms.dao.TheaterDao;
import pms.om.Event;


/** 
 * Controller to generate the Home Page basics to be rendered by a view. 
 * It extends the convenience class AbstractController that encapsulates most 
 * of the drudgery involved in handling HTTP requests. 
 * @author KRS DEV Team (krsdevteam@PMSWIbb2011SS.de)
 */
public class EditEvent extends AbstractController {
	private EventDao eventDao;

	public void setEventDao(EventDao eventDao) {
		this.eventDao = eventDao;
	}
	
	private TheaterDao theaterDao;

	public void setTheaterDao(TheaterDao theaterDao) {
		this.theaterDao = theaterDao;
	}
	
	public TheaterDao getTheaterDao() {
		return theaterDao;
	}

	protected ModelAndView handleRequestInternal(
			HttpServletRequest httpServletRequest,
			HttpServletResponse httpServletResponse) throws Exception {
		ModelAndView mv = new ModelAndView();
		mv.addObject("privileged", httpServletRequest.isUserInRole("admin"));
		try {
			int id = Integer.parseInt(httpServletRequest.getParameter("id"));
			// wenn id nicht geparsed werden kann, dann wird ein neues Objekt angelegt
			mv.addObject("title", "Bootsbeschreibung bearbeiten");
			mv.addObject("message", "Ändern Sie die Beschreibung des Boots und klicken Sie dann auf 'Änderungen übernehmen'.");
			mv.addObject(eventDao.findById(id));
		} catch (NumberFormatException e) {
			mv.addObject("title", "Neue Veranstaltung anlegen");
			mv.addObject("message", "Sie befinden sich im Admin-Bereich. Hier können Sie eine neue Veranstaltung anlegen.");
			mv.addObject("theaters", theaterDao.findAll());
			mv.addObject(new Event("Neue Veranstaltung"));
		}
		mv.setViewName("edit-event");
		return mv;
	}

}
